package com.ruoyi.system.api.domain;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.Date;

/**
 * 用户信息 (数据来源于CC端主动调用)对象 st_user
 *
 * @author shihx
 * @date 2020-02-25
 */
@ApiModel(value="User",description="用户信息实体") // 用来描述封装的参数对象与返回的参数对象
@JsonInclude(JsonInclude.Include.NON_NULL)
public class User extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @ApiModelProperty(value = "主键ID",name="id",required = true,dataType="Long",example="主键ID")
    private Long id;

    /** 邮箱（登陆账号） */
    @Excel(name = "邮箱", readConverterExp = "登陆账号")
    @ApiModelProperty(value = "邮箱",name="email",required = true,dataType="String",example="邮箱")
    private String email;

    /** 密码 */
    @Excel(name = "密码")
    @ApiModelProperty(value = "密码",name="password",required = true,dataType="String",example="密码")
    private String password;

    /** 用于消息推送 */
    @Excel(name = "用于消息推送")
    @ApiModelProperty(value = "用于消息推送",name="registrationId",required = true,dataType="String",example="用于消息推送")
    private String registrationId;

    /** 手机的唯一标识 */
    @Excel(name = "手机的唯一标识")
    @ApiModelProperty(value = "手机的唯一标识",name="phoneUuid",required = true,dataType="String",example="手机的唯一标识")
    private String phoneUuid;

    /** TL主键ID(如果是工程师属于哪个Tl) */
    @Excel(name = "TL主键ID(如果是工程师属于哪个Tl)")
    @ApiModelProperty(value = "TL主键ID",name="teamleaderId",required = true,dataType="String",example="TL主键ID")
    private String teamleaderId;

    /** TL姓名 */
    @Excel(name = "TL姓名")
    @ApiModelProperty(value = "TL姓名",name="teamleaderName",required = true,dataType="String",example="TL姓名")
    private String teamleaderName;

    /** 工程师ID */
    @Excel(name = "工程师ID")
    @ApiModelProperty(value = "工程师ID",name="enginnerId",required = true,dataType="Long",example="工程师ID")
    private Long enginnerId;

    /** 工程师姓名 */
    @Excel(name = "工程师姓名")
    @ApiModelProperty(value = "工程师姓名",name="name",required = true,dataType="String",example="工程师姓名")
    private String name;

    /** 工程师SAP Code */
    @Excel(name = "工程师SAP Code")
    @ApiModelProperty(value = "工程师SAP",name="sapcode",required = true,dataType="String",example="工程师SAP")
    private String sapcode;

    /** WorkDay休假状态  0 上班 1休假-上午 2休假-下午 */
    @Excel(name = "WorkDay休假状态  0 上班 1休假-上午 2休假-下午")
    @ApiModelProperty(value = "WorkDay休假状态",name="workday",required = true,dataType="String",example="WorkDay休假状态  0 上班 1休假-上午 2休假-下午")
    private String workday;

    /** 借货受理人 */
    @Excel(name = "借货受理人")
    @ApiModelProperty(value = "借货受理人",name="csrcode",required = true,dataType="String",example="借货受理人")
    private String csrcode;

    /** 职位 */
    @Excel(name = "职位")
    @ApiModelProperty(value = "职位",name="position",required = true,dataType="String",example="职位")
    private String position;

    /** 手机 */
    @Excel(name = "手机")
    @ApiModelProperty(value = "手机",name="mobile",required = true,dataType="String",example="手机")
    private String mobile;

    /** 工程师技能等级 Level 1-8 */
    @Excel(name = "工程师技能等级 Level 1-8")
    @ApiModelProperty(value = "工程师技能等级",name="level",required = true,dataType="String",example="工程师技能等级 Level 1-8")
    private String level;

    /** 删除标志（0代表存在 2代表删除） */
    @ApiModelProperty(value = "删除标志",name="delFlag",required = true,dataType="String",example="删除标志（0代表存在 2代表删除）")
    private String delFlag;

    /** AccessToken登陆令牌 */
    @ApiModelProperty(value = "AccessToken登陆令牌（出参）",name="token",required = true,dataType="String",example="AccessToken登陆令牌")
    private String token;

    @Excel(name = "最新X坐标")
    @ApiModelProperty(value = "最新X坐标",name="postx",required = true,dataType="String",example="最新X坐标")
    private Double postx;

    /**
     * 最新Y坐标 decimal(10,7)
     */
    @Excel(name = "最新Y坐标")
    @ApiModelProperty(value = "最新Y坐标",name="posty",required = true,dataType="String",example="最新Y坐标")
    private Double posty;

    /**
     * 地址详情
     */
    @ApiModelProperty(value = "地址详情",name="address",required = true,dataType="String",example="地址详情")
    private String address;

    /** 距离（米） */
    @ApiModelProperty(value = "距离（米）",name="distance",required = true,dataType="String",example="距离（米）")
    private String distance;

    /** div */
    @ApiModelProperty(value = "div",name="div1",required = true,dataType="String",example="div")
    private String div1;

    /** bu */
    @ApiModelProperty(value = "bu",name="bu",required = true,dataType="String",example="bu")
    private String bu;

    @ApiModelProperty(value = "能否登陆 1能登陆 2不能登陆",name="state",required = true,dataType="String",example="能否登陆 1能登陆 2不能登陆")
    private String state;


    /** 定位上报间隔 */
    @ApiModelProperty(value = "定位上报间隔",name="locationReportingInterval",required = true,dataType="Double",example="定位上报间隔")
    private Double locationReportingInterval;

    @Excel(name = "借货受理人姓名")
    @ApiModelProperty(value = "借货受理人姓名",name="csrname",required = true,dataType="String",example="借货受理人姓名")
    private String csrname;


    private Date receiveDate;

    private String online;


    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setEmail(String email)
    {
        this.email = email;
    }

    public String getEmail()
    {
        return email;
    }
    public void setPassword(String password)
    {
        this.password = password;
    }

    public String getPassword()
    {
        return password;
    }
    public void setRegistrationId(String registrationId)
    {
        this.registrationId = registrationId;
    }

    public String getRegistrationId()
    {
        return registrationId;
    }
    public void setPhoneUuid(String phoneUuid)
    {
        this.phoneUuid = phoneUuid;
    }

    public String getPhoneUuid()
    {
        return phoneUuid;
    }
    public void setTeamleaderId(String teamleaderId)
    {
        this.teamleaderId = teamleaderId;
    }

    public String getTeamleaderId()
    {
        return teamleaderId;
    }
    public void setEnginnerId(Long enginnerId)
    {
        this.enginnerId = enginnerId;
    }

    public Long getEnginnerId()
    {
        return enginnerId;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setSapcode(String sapcode)
    {
        this.sapcode = sapcode;
    }

    public String getSapcode()
    {
        return sapcode;
    }
    public void setWorkday(String workday)
    {
        this.workday = workday;
    }

    public String getWorkday()
    {
        return workday;
    }
    public void setCsrcode(String csrcode)
    {
        this.csrcode = csrcode;
    }

    public String getCsrcode()
    {
        return csrcode;
    }
    public void setPosition(String position)
    {
        this.position = position;
    }

    public String getPosition()
    {
        return position;
    }
    public void setMobile(String mobile)
    {
        this.mobile = mobile;
    }

    public String getMobile()
    {
        return mobile;
    }
    public void setLevel(String level)
    {
        this.level = level;
    }

    public String getLevel()
    {
        return level;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public String getTeamleaderName() {
        return teamleaderName;
    }

    public void setTeamleaderName(String teamleaderName) {
        this.teamleaderName = teamleaderName;
    }

    public Double getPostx() {
        return postx;
    }

    public void setPostx(Double postx) {
        this.postx = postx;
    }

    public Double getPosty() {
        return posty;
    }

    public void setPosty(Double posty) {
        this.posty = posty;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getDistance() {
        return distance;
    }

    public void setDistance(String distance) {
        this.distance = distance;
    }

    public String getDiv1() {
        return div1;
    }

    public void setDiv1(String div1) {
        this.div1 = div1;
    }

    public String getBu() {
        return bu;
    }

    public void setBu(String bu) {
        this.bu = bu;
    }

    public Double getLocationReportingInterval() {
        return locationReportingInterval;
    }

    public void setLocationReportingInterval(Double locationReportingInterval) {
        this.locationReportingInterval = locationReportingInterval;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getCsrname() {
        return csrname;
    }

    public void setCsrname(String csrname) {
        this.csrname = csrname;
    }

    public Date getReceiveDate() {
        return receiveDate;
    }

    public void setReceiveDate(Date receiveDate) {
        this.receiveDate = receiveDate;
    }

    public String getOnline() {
        return online;
    }

    public void setOnline(String online) {
        this.online = online;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("email", getEmail())
                .append("password", getPassword())
                .append("registrationId", getRegistrationId())
                .append("phoneUuid", getPhoneUuid())
                .append("teamleaderId", getTeamleaderId())
                .append("enginnerId", getEnginnerId())
                .append("name", getName())
                .append("sapcode", getSapcode())
                .append("workday", getWorkday())
                .append("csrcode", getCsrcode())
                .append("position", getPosition())
                .append("mobile", getMobile())
                .append("level", getLevel())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("receiveDate", getReceiveDate())
                .append("online", getOnline())
                .toString();
    }
}
